function chunk(array, process, context) {
    setTimeout(function () {
        let item = array.shift()
        process.call(context, item)
        if (array.length > 0) {
            // 这里的 callee 是 handler
            // 而不是 chunk
            // call 本身带有闭包信息
            // 因此这里就是一个递归
            setTimeout(arguments.callee, 100)
        }
    }, 100)
}

chunk([1,2,3,4], console.dir, null)
